YUI.add('wfintl', function (Y) {
	
	Y.translator = new Y.Translator();
	
	var needIntls = {
			firstLoadingPpanel:{
				container:Y.one('#first-loading-panel .yui3-widget-hd')
			},
			newItem:{
				container : Y.one('#addButton .text')
			},
			shareTip:{
				container : Y.one('#share-mode-overlay .yui3-widget-bd')
			},
			menuItemHelp : {
				container : Y.one('#menu-item-help')
			},
			menuItemAbout : {
				container : Y.one('#menu-item-about')
			},
			helpPanel : {
				container : Y.one('#help-panel .yui3-widget-bd ul')
			}
	};
	
	function initAppLangs(){
		needIntls.firstLoadingPpanel.container.setContent(Y.translator.updatingView());
		needIntls.newItem.container.setContent(Y.translator.newItem());
		needIntls.shareTip.container.setContent(Y.translator.shareTip());
		needIntls.menuItemHelp.container.setContent(Y.translator.menuItemHelp());
		needIntls.menuItemAbout.container.setContent(Y.translator.menuItemAbout());
		needIntls.helpPanel.container.setContent(Y.translator.helpPanel());
		var login = Y.one('#menu-item-login');
		if(login)
			login.setContent(Y.translator.menuItemLogin());
		var logout = Y.one('#menu-item-logout');
		if(logout)
			logout.setContent(Y.translator.menuItemLogout());
	}
	
	initAppLangs();
	
	var langNames = {
//		    "ar": "العربية",
//		    "ar-JO": "العربية (الأردن)",
//		    "ca": "català",
//		    "ca-ES": "català (Espanya)",
//		    "da": "dansk",
//		    "da-DK": "dansk (Danmark)",
//		    "de": "Deutsch",
//		    "de-AT": "Deutsch (Österreich)",
//		    "de-DE": "Deutsch (Deutschland)",
//		    "el": "ελληνικά",
//		    "el-GR": "ελληνικά (Ελλάδα)",
		    "en": "English",
//		    "en-AU": "English (Australia)",
//		    "en-CA": "English (Canada)",
//		    "en-GB": "English (U.K.)",
//		    "en-IE": "English (Ireland)",
//		    "en-IN": "English (India)",
//		    "en-JO": "English (Jordan)",
//		    "en-MY": "English (Malaysia)",
//		    "en-NZ": "English (New Zealand)",
//		    "en-PH": "English (Philippines)",
//		    "en-SG": "English (Singapore)",
//		    "en-US": "English (U.S.)",
//		    "es": "español",
//		    "es-AR": "español (Argentina)",
//		    "es-BO": "español (Bolivia)",
//		    "es-CL": "español (Chile)",
//		    "es-CO": "español (Colombia)",
//		    "es-EC": "español (Ecuador)",
//		    "es-ES": "español (España)",
//		    "es-MX": "español (México)",
//		    "es-PE": "español (Perú)",
//		    "es-PY": "español (Paraguay)",
//		    "es-US": "español (Estados Unidos)",
//		    "es-UY": "español (Uruguay)",
//		    "es-VE": "español (Venezuela)",
//		    "fi": "suomi",
//		    "fi-FI": "suomi (Suomi)",
//		    "fr": "français",
//		    "fr-BE": "français (Belgique)",
//		    "fr-CA": "français (Canada)",
//		    "fr-FR": "français (France)",
//		    "hi": "हिंदी",
//		    "hi-IN": "हिंदी (भारत)",
//		    "id": "Bahasa Indonesia",
//		    "id-ID": "Bahasa Indonesia (Indonesia)",
//		    "it": "italiano",
//		    "it-IT": "italiano (Italia)",
		    "ja": "日本語",
//		    "ja-JP": "日本語 (日本)",
		    "ko": "한국어",
//		    "ko-KR": "한국어 (대한민국)",
//		    "ms": "Bahasa Melayu",
//		    "ms-MY": "Bahasa Melayu (Malaysia)",
//		    "nb": "norsk",
//		    "nb-NO": "norsk (Norge)",
//		    "nl": "Nederlands",
//		    "nl-BE": "Nederlands (België)",
//		    "nl-NL": "Nederlands (Nederland)",
//		    "pl": "polski",
//		    "pl-PL": "polski (Polska)",
//		    "pt": "português",
//		    "pt-BR": "português (Brasil)",
//		    "ro": "română",
//		    "ro-RO": "română (România)",
//		    "ru": "русский",
//		    "ru-RU": "русский (Россия)",
//		    "sv": "svenska",
//		    "sv-SE": "svenska (Sverige)",
//		    "th": "ไทย",
//		    "th-TH": "ไทย (ประเทศไทย)",
//		    "tr": "Türkçe",
//		    "tr-TR": "Türkçe (Türkiye)",
//		    "vi": "Tiếng Việt",
//		    "vi-VN": "Tiếng Việt (Việt Nam)",
		    "zh": "中文（简体）",
//		    "zh-Hans-CN": "中文 (中国)",
		    "zh-Hant": "繁體中文"
//		    "zh-Hant-HK": "中文 (香港)",
//		    "zh-Hant-TW": "中文 (臺灣)"
		};

		function isRTL(lang) {
		    var pos = lang.indexOf("-");
		    if (pos >= 0) {
		        lang = lang.substring(0, pos);
		    }
		    // currently Arabic is our only RTL language
		    return lang === "ar";
		}
	
    var availLangs = Y.Intl.getAvailableLangs("translator"),
    select = Y.one("#lang_select"),
    i, lang, langName, dir;
    
    for (i = 0; i < availLangs.length; i++) {
        lang = availLangs[i];
        langName = langNames[lang] || lang;
        dir = isRTL(lang) ? "rtl" : "ltr";
        select.append('<option value="' + lang + '" dir="' + dir + '">' + langName + '</option>');
        select.addClass("yui3-avail-languages");
    }
    
    select.after('change',function(e){
    	lang = this.get('value');
    	Y.Cookie.set("uxu123-lang", lang, { expires: new Date("January 12, 2025"),path: "/workflow.html" });
        Y.use("lang/translator_" + lang, function(Y) {
            // You only need to set the language explicitly when switching languages,
            // It is not required for the single language use case instances shown previously.
        	Y.translateApp(lang);
//            var formattedDate = Y.DataType.Date.format(new Date(), {format:"%c"}),
//                rtl = isRTL(lang);
//
//            output.setContent(formattedDate)
//            output.setAttribute("dir", rtl ? "rtl" : "ltr")
//            output.toggleClass("rtl", rtl);
        });
    });
    
	Y.translateApp = function(lang){
    	if(lang != 'en' && lang !='zh'){
    		alert('not translated yet');
    		return;
    	}
        Y.use("lang/translator_" + lang, function(Y) {
            // You only need to set the language explicitly when switching languages,
            // It is not required for the single language use case instances shown previously.
            Y.Intl.setLang("translator", lang);
    		Y.translator = new Y.Translator();
    		select.set('value',lang);
    		initAppLangs();
            rtl = isRTL(lang);
        });
	};
    
},'0.0.1',{requires:['node','intl','translator','cookie']});